package com.athena.crm.service;

import com.athena.crm.domain.CrmCluePool;
import com.athena.crm.domain.bo.CrmCluePoolToClueBo;
import com.athena.crm.domain.bo.CrmClueTransferBo;
import com.athena.crm.domain.bo.CrmCustomerToHighSeasBo;
import com.athena.crm.domain.vo.CrmCluePoolVo;
import com.athena.crm.domain.bo.CrmCluePoolBo;
import com.athena.common.core.page.TableDataInfo;
import com.athena.common.core.domain.PageQuery;
import com.athena.crm.domain.vo.CrmClueVo;

import java.util.Collection;
import java.util.List;

/**
 * CRM线索池Service接口
 *
 * @author ruoyi
 * @date 2023-09-10
 */
public interface ICrmCluePoolService {

    /**
     * 查询CRM线索池
     */
    CrmCluePoolVo queryById(Long id);

    /**
     * 查询CRM线索池列表
     */
    TableDataInfo<CrmCluePoolVo> queryPageList(CrmCluePoolBo bo, PageQuery pageQuery);

    /**
     * 查询CRM线索池列表
     */
    List<CrmCluePoolVo> queryList(CrmCluePoolBo bo);

    /**
     * 新增CRM线索池
     */
    Boolean insertByBo(CrmCluePoolBo bo);

    /**
     * 修改CRM线索池
     */
    Boolean updateByBo(CrmCluePoolBo bo);

    /**
     * 校验并批量删除CRM线索池信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 线索转线索池对象
     * @param bbo
     * @return
     */
    boolean insertByBbo(CrmClueTransferBo bbo);

    /**
     * 姓名和电话查询线索信息
     * @param name 姓名
     * @param phone 电话
     * @return
     */
    CrmCluePoolVo queryByNameAndPhone(String name, String phone);

    /**
     * 线索池转
     * @param bbo
     * @return
     */
    int cluePooltoClue(CrmCluePoolToClueBo bbo);
}
